/**
 * @file version.h
 * @brief 通用版本信息头文件
 * @details 本文件定义了通用版本信息接口，支持多种协议类型
 * 
 * @author zyb
 * @date 2025-09-26
 * @version 1.0
 */

#ifndef VERSION_H
#define VERSION_H

#ifdef __cplusplus
extern "C" {
#endif

/* 包含自动生成的版本信息 */
#include "version_generated.h"

/* ==================== 版本信息函数 ==================== */

/**
 * @brief 获取项目版本信息
 * @details 获取项目的版本字符串
 * 
 * @return 版本字符串
 */
const char* get_project_version(void);

/**
 * @brief 获取项目构建信息
 * @details 获取项目的构建信息
 * 
 * @return 构建信息字符串
 */
const char* get_build_info(void);

/**
 * @brief 获取完整版本字符串
 * @details 获取包含项目名、构建版本和时间戳的完整版本字符串
 * 
 * @return 完整版本字符串
 */
const char* get_full_version(void);

/**
 * @brief 获取可执行程序名称
 * @details 获取根据版本规则生成的可执行程序名称
 * 
 * @return 可执行程序名称
 */
const char* get_executable_name(void);

/**
 * @brief 获取项目名称
 * @details 获取项目名称字符串
 * 
 * @return 项目名称
 */
const char* get_project_name(void);

/**
 * @brief 获取构建版本
 * @details 获取构建版本字符串
 * 
 * @return 构建版本
 */
const char* get_build_version(void);

/**
 * @brief 获取构建时间戳
 * @details 获取构建时间戳字符串
 * 
 * @return 构建时间戳
 */
const char* get_build_timestamp(void);

#ifdef __cplusplus
}
#endif

#endif /* VERSION_H */
